// 解构创建仓库的方法
// applyMiddleware 类似 Vue.use() 使用中间件
import { createStore, applyMiddleware, compose } from "redux";

// redux-thunk 主要用于解决异步 action 的问题
// 如何解决：对 dispatch 的方法进行了增强
import thunk from 'redux-thunk';

// 导入仓库管理员
import reducer from './reducer';

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

// 创建仓库并传入管理员
const store = createStore(
  reducer,
  composeEnhancers(
    applyMiddleware(thunk)
  )
);

export default store;
